Gesture object
組み合わせる
Race
複数のgestureを組み合わせるときに使う
提供されたgestureのうち、1つだけがactiveになるようにする
1つがactiveになると他はcancelされる
複数のジェスチャーが競合する可能性がある場合に役立つ
例えば
長押しでポップアップを表示しつつ、ドラッグでコンポーネントを移動させたい場合、長押しが有効になった場合にドラッグをキャンセルする
code:ts
const composed = Gesture.Race(dragGesture, longPressGesture);
Simultaneous
提供された全てのジェスチャーが同時にアクティブになることを許可する
例えば、
ギャラリーアプリで写真をズーム、回転、パンする場合、全てのジェスチャーが同時にアクティブになる必要がある
code:ts
const composed = Gesture.Simultaneous(
dragGesture,
Gesture.Simultaneous(zoomGesture, rotateGesture)
);
Exclusive
提供されたジェスチャーのうち、優先順位の高いものがアクティブになるようにする
優先順位の高いものが失敗すると、次のものがactiveになる
複数のジェスチャーが連続して試され、最初に成功したものがアクティブになる
例
例えば、シングルタップとダブルタップのジェスチャーを実装する場合、Exclusiveを使用して、ダブルタップが優先され、失敗した場合にシングルタップが試されるようにする
code:ts
const taps = Gesture.Exclusive(doubleTap, singleTap);
requireExternalGestureToFail
blocksExternalGesture
simultaneousWithExternalGesture